// SSR trace
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Wed Dec 18 07:52:15 2019
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xy          0     NONE   float   xy
// SV_POSITION              0   xyzw        1      POS   float
// SV_RenderTargetArrayIndex     0   x           2  RTINDEX    uint   x
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                1   xyzw        1   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[52], immediateIndexed
dcl_constantbuffer cb1[160], dynamicIndexed
dcl_constantbuffer cb2[5], immediateIndexed
dcl_constantbuffer cb3[4], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_input_ps linear noperspective v0.xy
dcl_input_ps_siv constant v2.x, rendertarget_array_index
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_temps 18
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
ld_indexable(texture2d)(float,float,float,float) r16.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r17.xyzw, l(0, 0, 0, 0), t120.xyzw
utof r0.x, v2.x
add r0.x, r0.x, l(0.500000)
mov r0.y, cb0[41].x
mad r1.z, r0.x, cb1[r0.y + 158].w, cb1[r0.y + 156].z
div r0.zw, v0.yyyx, cb1[r0.y + 158].yyyx
add r0.zw, r0.zzzw, cb1[r0.y + 156].yyyx
mul r1.w, l(0.500000), cb1[r0.y + 158].w
mad r1.xy, -cb1[r0.y + 158].wwww, l(0.500000, 0.500000, 0.000000, 0.000000), r0.zwzz
mul r0.z, r0.x, cb1[r0.y + 156].w
add r2.xyz, -r1.xzyx, cb2[0].yzxy
mul r0.w, cb2[0].w, cb2[0].w
div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
dp3 r2.w, r2.xyzx, r2.xyzx
add r0.w, r0.w, -r2.w
lt r0.w, r0.w, l(0.000000)
discard_nz r0.w
rsq r0.w, r2.w
mul r2.xyz, r0.wwww, r2.xyzx
mul r3.xyz, r1.wwww, r2.zxyz
dp3 r0.w, |r3.xyzx|, l(1.000000, 1.000000, 1.000000, 0.000000)
add r1.xyz, r0.wwww, r1.xyzx
add r3.xyz, -r1.yxzy, cb2[0].xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
add r1.w, r0.w, l(1.000000)
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.w
mul r2.w, |cb2[0].w|, |cb2[0].w|
mul r2.w, r0.w, r2.w
mad r2.w, -r2.w, r2.w, l(1.000000)
max r2.w, r2.w, l(0.000000)
mul r2.w, r2.w, r2.w
mul r1.w, r1.w, r2.w
rsq r0.w, r0.w
mul r3.xyz, r0.wwww, r3.xyzx
dp3 r0.w, r3.xyzx, cb2[2].xyzx
add r0.w, r0.w, -cb2[4].x
mul_sat r0.w, r0.w, cb2[4].y
mul r0.w, r0.w, r0.w
mul r3.x, r1.w, r0.w
if_nz cb0[35].z
  lt r0.w, cb0[51].x, l(1.000000)
  if_nz r0.w
    add r4.xyz, r1.xyzx, -cb2[0].yxzy
    dp3 r0.w, r4.xyzx, r4.xyzx
    sqrt r0.w, r0.w
    div r4.xyz, r4.xyzx, r0.wwww
    min r1.w, |r4.y|, |r4.x|
    max r2.w, |r4.y|, |r4.x|
    div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
    mul r1.w, r1.w, r2.w
    mul r2.w, r1.w, r1.w
    mad r3.z, r2.w, l(0.0208350997), l(-0.085133)
    mad r3.z, r2.w, r3.z, l(0.180141)
    mad r3.z, r2.w, r3.z, l(-0.330299497)
    mad r2.w, r2.w, r3.z, l(0.999866)
    mul r3.z, r1.w, r2.w
    lt r3.w, |r4.y|, |r4.x|
    mad r3.z, r3.z, l(-2.000000), l(1.57079637)
    and r3.z, r3.w, r3.z
    mad r1.w, r1.w, r2.w, r3.z
    lt r3.zw, r4.yyyz, -r4.yyyz
    and r2.w, r3.z, l(0xc0490fdb)
    add r1.w, r1.w, r2.w
    min r2.w, r4.y, r4.x
    max r3.z, r4.y, r4.x
    lt r2.w, r2.w, -r2.w
    ge r3.z, r3.z, -r3.z
    and r2.w, r2.w, r3.z
    movc r1.w, r2.w, -r1.w, r1.w
    mul r2.w, r1.w, l(0.159154937)
    lt r3.z, l(0.000000), r1.w
    mad r1.w, r1.w, l(0.159154937), l(1.000000)
    movc r4.x, r3.z, r2.w, r1.w
    add r1.w, -|r4.z|, l(1.000000)
    sqrt r1.w, r1.w
    mad r2.w, |r4.z|, l(-0.0187292993), l(0.074261)
    mad r2.w, r2.w, |r4.z|, l(-0.212114394)
    mad r2.w, r2.w, |r4.z|, l(1.57072878)
    mul r3.z, r1.w, r2.w
    mad r3.z, r3.z, l(-2.000000), l(3.14159274)
    and r3.z, r3.w, r3.z
    mad r1.w, r2.w, r1.w, r3.z
    mul r4.y, r1.w, l(0.318309873)
    sample_l_indexable(texture2d)(float,float,float,float) r1.w, r4.xyxx, t1.yzwx, s1, l(0.000000)
    mul r0.w, r0.w, |cb2[0].w|
    lt r0.w, r0.w, r1.w
    and r3.y, r0.w, l(0x3f800000)
  else
    mul r4.xyzw, r1.xxxx, cb0[37].xyzw
    mad r4.xyzw, r1.yyyy, cb0[36].xyzw, r4.xyzw
    mad r1.xyzw, r1.zzzz, cb0[38].xyzw, r4.xyzw
    add r1.xyzw, r1.xyzw, cb0[39].xyzw
	
	// mad r1.x, r16.x, r17.w, r1.x
	// no effect
	
    div r4.xyzw, r1.xyxy, r1.wwww
    ge r1.xy, r4.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000)
    ge r3.zw, l(0.000000, 0.000000, 1.000000, 1.000000), r4.zzzw
    and r1.xy, r1.xyxx, r3.zwzz
    and r0.w, r1.y, r1.x
    if_nz r0.w
      mad r4.xyzw, r4.xyzw, cb0[40].xyxy, l(-0.500000, -0.500000, -0.500000, -0.500000)
      frc r1.xy, r4.zwzz
      round_ni r4.xyzw, r4.xyzw
      add r5.xyzw, r4.zwzw, l(0.500000, 1.500000, 0.500000, 0.500000)
      mul r5.xyzw, r5.xyzw, cb0[40].zwzw
      sample_l_indexable(texture2d)(float,float,float,float) r6.x, r5.xyxx, t1.xyzw, s1, l(0.000000)
      add r4.xyzw, r4.xyzw, l(1.500000, 1.500000, 1.500000, 0.500000)
      mul r4.xyzw, r4.xyzw, cb0[40].zwzw
      sample_l_indexable(texture2d)(float,float,float,float) r6.y, r4.xyxx, t1.yxzw, s1, l(0.000000)
      sample_l_indexable(texture2d)(float,float,float,float) r6.z, r4.zwzz, t1.yzxw, s1, l(0.000000)
      sample_l_indexable(texture2d)(float,float,float,float) r6.w, r5.zwzz, t1.yzwx, s1, l(0.000000)
      add r4.xyzw, -r1.zzzz, r6.xyzw
      mad_sat r4.xyzw, r4.xyzw, l(40.000000, 40.000000, 40.000000, 40.000000), l(1.000000, 1.000000, 1.000000, 1.000000)
      lt r5.xyzw, l(0.990000, 0.990000, 0.990000, 0.990000), r6.xyzw
      and r5.xyzw, r5.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
      add r4.xyzw, r4.xyzw, r5.xyzw
      min r4.xyzw, r4.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
      add r1.zw, -r4.wwwx, r4.zzzy
      mad r1.xz, r1.xxxx, r1.zzwz, r4.wwxw
      add r0.w, -r1.x, r1.z
      mad r3.y, r1.y, r0.w, r1.x
    else
      mov r3.y, l(1.000000)
    endif
  endif
else
  mov r3.y, l(1.000000)
endif
ieq r0.w, cb0[41].x, l(1)
mad r1.x, cb1[157].w, l(4.000000), l(1.000000)
mov r0.xy, v0.xyxx
add r1.y, cb1[157].w, cb1[157].w
mad r0.xyz, r0.xyzx, r1.xxxx, -r1.yyyy
add r0.xyz, r0.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000)
add r0.xyz, -|r0.xyzx|, l(0.500000, 0.500000, 0.500000, 0.000000)
mul_sat r0.xyz, r0.xyzx, l(10.000000, 10.000000, 10.000000, 0.000000)
mul r0.x, r0.y, r0.x
mul r0.x, r0.z, r0.x
mul r0.xy, r3.xyxx, r0.xxxx
movc r0.xy, r0.wwww, r0.xyxx, r3.xyxx
itof r0.zw, cb1[149].zzzw
mad r0.z, r0.w, l(4.656612873E-010), r0.z
mul r0.z, r0.z, cb3[3].x
mul r0.zw, r0.zzzz, l(0.000000, 0.000000, 0.050000, 0.200000)
sample_indexable(texture2d)(float,float,float,float) r0.z, r0.zwzz, t0.yzxw, s0
mad r0.z, r0.z, l(1.300000), l(0.200000)
add r1.xyz, r0.zzzz, cb3[2].xyzx
max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
dp3 r0.z, r1.xyzx, l(0.333300, 0.333300, 0.333300, 0.000000)
mul r0.y, r0.z, r0.y
mul r0.xzw, r0.xxxx, cb2[1].xxyz
mul r0.xyz, r0.yyyy, r0.xzwx
mul r1.yzw, r2.xxyz, l(0.000000, -0.488603, 0.488603, -0.488603)
mov r1.x, l(0.0897936225)
mul r0.w, r0.x, l(0.318309873)
mul r2.xyzw, r0.xwww, r1.xyzw
mul r3.xyzw, r0.yyyy, l(1.000000, 0.318309873, 0.318309873, 0.318309873)
mul r3.xyzw, r1.xyzw, r3.xyzw
mul r0.xyzw, r0.zzzz, l(1.000000, 0.318309873, 0.318309873, 0.318309873)
mul r0.xyzw, r0.xyzw, r1.xyzw
mov r1.x, r2.y
mov r1.y, r3.y
mov r1.z, r0.y
dp3 o1.x, r1.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
mov r1.x, r2.z
mov r1.y, r3.z
mov r1.z, r0.z
dp3 o1.y, r1.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
mov r1.x, r2.w
mov r1.y, r3.w
mov r1.z, r0.w
dp3 o1.z, r1.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
mov o0.x, r2.x
mov o0.y, r3.x
mov o0.z, r0.x
mov o0.w, l(0)
mov o1.w, l(0)
ret
// Approximately 0 instruction slots used
